/**
 * CourseDetailsModule.java
 * com.sftz.modules.minapp.coursedetails.module
 * Copyright (c) 2018, 北京科技有限公司版权所有.
*/

package com.sftz.modules.minapp.coursestudy.module;

import java.util.Map;

import org.nutz.ioc.loader.annotation.Inject;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;

import com.sftz.assets.entities.CourseEntity;
import com.sftz.framework.rersult.MobileResult;
import com.sftz.modules.minapp.coursestudy.dto.CourseLearningRecordDto;
import com.sftz.modules.minapp.coursestudy.form.CourseRecordForm;
import com.sftz.modules.minapp.coursestudy.service.CoursegRecordService;
import com.sftz.modules.minapp.user.cache.RedissionUserCache;

@IocBean
@At("/wx/study")
public class CourseRecorModule {

	@Inject
	private CoursegRecordService coursegRecordService;

	/**
	 * 存储课程的学习记录
	 * @Date 2018年12月18日
	 * @author gyp
	 * @param sqlParamForm
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	@At
	@Ok("json")
	public Map<String, Object> insterRecourd(@Param("..") final CourseRecordForm form) {
		try {

			Integer userId = RedissionUserCache.getUserId(form.getToken());
			form.setUserid(userId);
			coursegRecordService.insterRecourd(form);
			return MobileResult.success("", "success");
		} catch (Exception e) {
			e.printStackTrace();
			return MobileResult.error("", "error");
		}
	}

	/**
	 * 获取播放记录信息
	 * @Date 2018年12月23日
	 * @author gyp
	 * @return(这里描述每个参数,如果有返回值描述返回值,如果有异常描述异常)
	 */
	@At
	@Ok("json")
	public Object getRecordInfo(@Param("..") final CourseRecordForm recordForm) {

		try {
			Integer userId = RedissionUserCache.getUserId(recordForm.getToken());
			recordForm.setUserid(userId);
			CourseLearningRecordDto record = coursegRecordService.getLearningRecordFirst(recordForm);
			return MobileResult.success("", record);
		} catch (Exception e) {
			e.printStackTrace();
			return MobileResult.error("", "");
		}
	}

	@At
	@Ok("json")
	public Object courseInfo(@Param("..") final CourseRecordForm form) {

		try {
			CourseEntity courseInfo = coursegRecordService.courseInfo(form);
			return MobileResult.success("", courseInfo);
		} catch (Exception e) {
			e.printStackTrace();
			return MobileResult.error("", "");
		}
	}

}
